
package com.jf.cloud.platform.service;

import com.jf.cloud.common.database.dto.PageDTO;
import com.jf.cloud.common.database.vo.PageVO;
import com.jf.cloud.platform.dto.WebConfigDTO;
import com.jf.cloud.platform.model.WebConfig;
import com.jf.cloud.platform.vo.WebConfigVO;

/**
 * 网站配置信息表
 *
 * @author zz
 */
public interface WebConfigService {

    /**
     * 分页获取网站配置信息表列表
     * @param pageDTO 分页参数
     * @param webConfigDTO 搜索参数
     * @return 网站配置信息表列表分页数据
     */
    PageVO<WebConfig> page(PageDTO pageDTO, WebConfigDTO webConfigDTO);

    /**
     * 根据网站配置信息表id获取网站配置信息表
     *
     * @param id 网站配置信息表id
     * @return 网站配置信息表
     */
    WebConfig getById(Long id);

    /**
     * 保存网站配置信息表
     * @param webConfig 网站配置信息表
     */
    void save(WebConfig webConfig);

    /**
     * 更新网站配置信息表
     * @param webConfig 网站配置信息表
     */
    void update(WebConfig webConfig);

    /**
     * 根据网站配置信息表id删除网站配置信息表
     * @param id 网站配置信息表id
     */
    void deleteById(Long id);

    /**
     * 根据网站类型修改已经激活的网站为待激活
     * @param configType 配置类型（1:平台端 2:商家端 3:PC端 4:h5端）
     */
    void updateActivityState(Integer configType);

    /**
     * 获取后台网站配置信息
     * @param configType 配置类型
     * @return 配置信息
     */
    WebConfigVO getActivityWebConfig(Integer configType);

    /**
     * 清除网站配置信息缓存
     * @param configType 配置类型
     */
    void removeActivityWebConfig(Integer configType);

    /**
     * 根据网站配置类型获取激活配置数量
     * @param configType
     * @return
     */
    int countByType(Integer configType);

    /**
     * 根据网站配置类型获取网站配置信息
     * @param configType
     * @return
     */
    WebConfigVO getByConfigType(Integer configType);
}
